1
От пространств имён к надёжным модульным системам
AI020Lesson 6
00:00

В ранней разработке на JavaScript Загрязнение пространства имён было серьёзным препятствием. Когда несвязанный код делит один набор глобальных имён переменных, возникают непредсказуемые конфликты. Современные подходы перешли от беспорядочного стиля к изолированным модульным системам.

1. Функциональная изоляция (IIFE)

Обернув код в выполняемое немедленно выражение функции (IIFE), мы создаём частную область видимости. Переменные, такие как names остаются внутри функции и недоступны для глобальной среды.

(function() {
var internal = "secret";
console.log(internal);
})();

2. Интерфейсы на основе объектов

Чтобы предоставить функциональность внешнему миру, модуль возвращает объект, выступающий в роли его общественного интерфейса. Это группирует связанные методы (например, name и number) под одним восстановленным глобальным переменной.

Частная область видимости[массив names]Интерфейсname(), number()

3. Паттерн экспорта

Сложная вариация предполагает передачу объекта exports внутрь IIFE. Это позволяет модулю напрямую привязать свой API к определённой цели пространства имён, обеспечивая гибкость при использовании модуля.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>